using net_work.Common.Request;
using net_work.Common.Result;
using net_work.Data.DTO.Cou;
using net_work.Data.Entity.Cou;

namespace net_work.IService.Cou;

public interface IScheduleService
{
    /// <summary>
    /// 分页查询排课
    /// </summary>
    /// <param name="request">查询参数</param>
    /// <returns>分页结果</returns>
    Task<PagedResult<Schedule>> GetSchedulesPagedAsync(PagedRequest request);

    /// <summary>
    /// 根据排课ID查询排课信息
    /// </summary>
    /// <param name="scheduleId">排课ID</param>
    /// <returns>排课信息</returns>
    Task<Schedule?> SelectByIdAsync(long scheduleId);

    /// <summary>
    /// 插入排课
    /// </summary>
    /// <param name="scheduleAddRequest">新增排课实体</param>
    /// <returns>排课ID</returns>
    Task<long> InsertSchedule(ScheduleAddRequest scheduleAddRequest);

    /// <summary>
    /// 更新排课信息
    /// </summary>
    /// <param name="scheduleUpdateRequest">更新排课信息</param>
    /// <returns>是否成功</returns>
    Task<int> UpdateSchedule(ScheduleUpdateRequest scheduleUpdateRequest);

    /// <summary>
    /// 删除排课
    /// </summary>
    /// <param name="ids">排课ID集合</param>
    /// <returns>是否成功</returns>
    Task<int> DeleteScheduleByIds(List<long> ids);
}